Processamento de Imagem
Segmentação
PI28CP 2021.1
Aluno: Ricardo Romano Langaro
Base de imagens escolhidaBase de imagens escolhida
Plant Seedlings Dataset:
Possui 960 plantas exclusivas
pertencentes a 12 espécies.
O banco de dados foi registrado
na Flakkebjerg, Dinamarca, em
parceria com universidades.
Base brutas (9,7 GB)
Base resumida (1,7 GB)
Base segmentada (258 MB)
vision.eng.au.dk/plant-seedlings-dataset/ kaggle.com/c/plant-seedlings-classification/
Segmentação Adotada
1. Normalização de cores (0-255)
2. Normalização de tamanho (resize) para 512 px
3. Filtro gaussiano (sigma = 5)
4. Correção de Gama (97 %)
Criação de 5 filtro binários
5. Selecionar faixa de RGB válida para a cor Verde (R 50:155, G 75:200 B 16:90)
6. Selecionar por diferença de RG, RB e GB, todos > 12
7. Selecionar pela soma de diferenças ( G-R ) + ( G-B ) > 25
8. Segmentação por Otsu
9. Segmentação por Isodata
Criação de 9 filtros binários através dos 5 anteriores e seleção pela mediana
10.Remove pequenos objetos (1%)
11.Dilatação do positivo com disco
12.Preenchimento de pequenas áreas
13.Erosão do positivo com disco
14.Pequena Erosão no filtro 7 criado. Realça as bordas.
15.Operação AND binária com o filtro 7 criado. Este filtro delimitou muito bem as bordas.
16.Remove médios objetos (10%)
Segmentação Adotada
Alguns testes são feitos entre os passos para descobrir se alguma das 5 máscaras
‘fecharam’ (0 False – para a planta e 1 True para o fundo),
neste caso ela é invertida.
Resultado da Segmentação
Resultado da Segmentação
Resultado da Segmentação
Resultado da Segmentação
Resultados Charlock
Resultados Cleavers
Resultados Common Chickweed
Resultados Common wheat
Resultados Fat Hen
Resultados Maize
Resultados Scentless Mayweed
Resultados Shepherd’s Purse
Resultados Small-flowered Cranesbill
Resultados Sugar beet
Resultados Black-grass
Resultados Loose Silky-bent
Processamento de Imagem
Classificação (Aprendizado Supervisionado)
PI28CP 2021.1
Aluno: Ricardo Romano Langaro
Características Obtidas
1. Momentos de Hu (7 momentos)
2. Filtros aleatórios (21 estatísticas, soma, media e variância)
Filtro entropy
Filtro modal
Filtro median
Filtro gradient
3. Matriz de coocorrência (6 características) (uma média de texturas é sobreposta quando uma
imagem é mal segmentada, retorna muitos centroides)
4. Seleção de características Anova (6 carac.)
Base de imagens escolhidaBase de imagens escolhida
96 imagens
2 classes
Espécies escolhidas: Charlock
e Fat hen
¾ para treino e ¼ para testes
Classificação Adotada
1. Árvores de Decisão, parâmetros padrão - > Acertos: 20 de 24 = 83,33 %
2. Máquinas de vetores de Suporte SVM
(algoritmo = rbf, grau polinômio = 30,
Regularização C=15) - > Acertos: 23 de 24 = 95,83 %
3. K-Vizinhos mais próximos KNN (8 vizinhos) - > Acertos: 22 de 24 = 91,67 %
Base de imagens escolhidaBase de imagens escolhida
990 imagens
2 classes
Espécies escolhidas: Charlock
e Fat hen
¾ para treino e ¼ para testes
Classificação Adotada
1. Árvores de Decisão, parâmetros padrão - > Acertos: 196 de 248 = 79,03 %
Charlock -> 78.06 % Fat hen -> 79.84 %
2. Máquinas de vetores de Suporte SVM
( algoritmo = rbf, grau polinômio = 30,
Regularização C=15 ) - > Acertos: 212 de 248 = 85,48 %
Charlock -> 79,30 % Fat hen -> 83.33 %
3. K-Vizinhos mais próximos KNN (8 vizinhos) - > Acertos: 203 de 248 = 81,85 %
Charlock -> 78.40 % Fat hen -> 85.37 %
Base de imagens escolhidaBase de imagens escolhida
5544 imagens
12 classes
Não uniforme
fts por classe
¾ para treino e
¼ para testes
Classificação Adotada
1. Máquinas de vetores de Suporte SVM
( algoritmo = rbf, grau polinômio = 30,
Regularização C=15 )
Acertos: 544 de 1386 = 39,25 %
Charlock -> 46,31 %
Blackgrass -> 8,22 %
Cleavers -> 3,75 %
Common chickweed -> 61,93 %
Common wheat -> 5,08 %
Fat hen -> 20,98%
Loose silky bent -> 78,89 %
Maize -> 24,61 %
Scentless mayweed -> 26,87 %
Shepherds purse -> 8,20 %
Small flowered cranesbill -> 47,77 %
Sugar beet -> 44,91 %
Base de imagens escolhidaBase de imagens escolhida
3600 imagens
12 classes
300 fts por classe
¾ para treino e
¼ para testes
Classificação Adotada
1. Máquinas de vetores de Suporte SVM
( algoritmo = rbf, grau polinômio = 30,
Regularização C=15 )
CLASSIFICAÇÃO MAIS UNIFORME !
Acertos: 308 de 900 = 34,22 %
Charlock -> 39.99 %
Blackgrass -> 16.00 %
Cleavers -> 14.66 %
Common chickweed -> 42.66 %
Common wheat -> 10.67 %
Fat hen -> 8.00 %
Loose silky bent -> 67.99 %
Maize -> 38.66 %
Scentless mayweed -> 42.66 %
Shepherds purse -> 30.66 %
Small flowered cranesbill -> 46.66 %
Sugar beet -> 51.99 %
Processamento de Imagem
Classificação (Aprendizado Por Redes Neurais)
PI28CP 2021.1
Aluno: Ricardo Romano Langaro
Base de imagens escolhidaBase de imagens escolhida
5544 imagens
12 classes
¾ para treino e
¼ para testes
Layer (type) Output Shape Param #
==============================================================
random_rotation_2 (RandomRot (None, 100, 100, 3) 0
_________________________________________________________________
conv2d_10 (Conv2D) (None, 98, 98, 32) 896
_________________________________________________________________
max_pooling2d_8 (MaxPooling2 (None, 49, 49, 32) 0
_________________________________________________________________
conv2d_11 (Conv2D) (None, 47, 47, 50) 14450
_________________________________________________________________
max_pooling2d_9 (MaxPooling2 (None, 23, 23, 50) 0
_________________________________________________________________
conv2d_12 (Conv2D) (None, 21, 21, 50) 22550
_________________________________________________________________
max_pooling2d_10 (MaxPooling (None, 10, 10, 50) 0
_________________________________________________________________
conv2d_13 (Conv2D) (None, 8, 8, 50) 22550
_________________________________________________________________
max_pooling2d_11 (MaxPooling (None, 4, 4, 50) 0
_________________________________________________________________
conv2d_14 (Conv2D) (None, 2, 2, 50) 22550
_________________________________________________________________
flatten_2 (Flatten) (None, 200) 0
_________________________________________________________________
dense_6 (Dense) (None, 100) 20100
_________________________________________________________________
dropout_4 (Dropout) (None, 100) 0
_________________________________________________________________
dense_7 (Dense) (None, 50) 5050
_________________________________________________________________
dropout_5 (Dropout) (None, 50) 0
_________________________________________________________________
dense_8 (Dense) (None, 12) 612
==============================================================
Total params: 108,758 Trainable params: 108,758 Non-trainable params: 0
Organização da Rede
Tamanho da janela de convolução 2D
Tamanho da saida (mapa de ativação)
Fonte: stanford.edu/~shervine/teaching/cs-230/cheatsheet-convolutional-neural-networks
Expandir base de treinamento:
RandomRotation (0.5) =
[-50% * 2pi, 50% * 2pi]
Ocultando base na camada de
neurônios:
Dropout (.05) = 5 %
Épocas: 50
Resultados
Accuracy training: 88,79 % Accuracy test: 85,77 %